home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / d / diskmoni / dump_as / konzept.txt < prev    next >
Encoding:
Text File  |  1996-11-17  |  23.9 KB  |  452 lines

  1. Alexander Scheutzow
  2. Berliner Str. 20
  3. W 6800 Mannheim 1
  4. Deutschland
  5.  
  6.  
  7.          ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
  8.          |                     D U M P _ A S                     |
  9.          |                     -------------                     |
  10.          |     Der Dateien-, Laufwerks- und Speichermonitor.     |
  11.          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
  12.  
  13. Textdatei "KONZEPT.TXT" zur Shareware-Version 1.00, Stichtag 1. 6. 1992.
  14.  
  15. Bitte studieren Sie zuerst die Datei "LIESMICH.TXT", die sich mit der 
  16. Bedienung von DUMP_AS, Share-Bedingungen usw. befaßt. Angehende Aufsteiger 
  17. sollten parallel dazu und zum Rest dieses Textes das MINI-GLOSSAR am Ende 
  18. dieser Datei verwenden, als Vorgeschmack auf das notwendige Bücherstudium. 
  19. Hier möchte ich einige ergänzende Hinweise und Informationen geben, die 
  20. Sie vielleicht nicht zusammen mit der Anleitung ausdrucken möchten. Das 
  21. Niveau der vorausgesetzten Kenntnisse wird stark schwanken, wie schon im 
  22. LIESMICH; bitte sehen Sie es mir nach, wenn Sie hier und da unter- oder 
  23. überfordert sind. Hoffentlich ist auch für Sie etwas dabei, ansonsten 
  24. warte ich auf Ihre Anregungen.
  25.  
  26. Die meisten Anmerkungen zur Datensicherheit sind wegen der Wichtigkeit des 
  27. entsprechenden Bewußtseins ins LIESMICH übergesiedelt.
  28.  
  29.  
  30. 1) Geschichte und Implementation
  31.  
  32. Wie so viele Shareware, ist auch DUMP_AS ein Evolutionsprodukt aus 
  33. mehreren kleinen Werkzeugen, die ad hoc entwickelt und später verbunden 
  34. wurden. Solche Keimzellen, teils in BASIC geschrieben, waren die 
  35. Text-Anzeige 't', der Hauptmodus und die Vergleichsfunktion 'c'. 
  36. Irgendwann wurde eine Zusammen-Fassung in C (Turbo-, jetzt Pure-C) und 
  37. Assembler (dto.) fällig, die in kurzer Zeit gigantische Formen annahm, da 
  38. mir immer neue Ergänzungsmöglichkeiten einfielen. Ein guter Teil des 
  39. Wildwuchses wurde wieder abgespeckt, da jedes zusätzliche Byte 
  40. Programmcode oder Blockspeicher den Laderäumen verloren geht.
  41.  
  42.  
  43. 2) Konzept der Oberfläche
  44.  
  45. Auf speicherfressende, lahme und anfällige Schnörkel verzichte ich 
  46. möglichst, dafür sollen aussagekräftige Dialoge eine Fehlbedienung 
  47. unwahrscheinlich machen. Luxus-Menüs mit kryptischen Bezeichnungen wurden 
  48. vermieden bzw. wieder hinausgeworfen. Vom ganzen AES-Zauber ist nur die 
  49. Datei-Auswahl-Box übriggeblieben, die wohl zu den elementaren 
  50. Menschenrechten zu zählen ist. Der Ungeübte wird die Bedienung zunächst 
  51. für mühsam halten, da die auslösenden Tastenkombinationen gelernt oder im 
  52. 'Help'-Text nachgeschaut werden müssen. Dafür sind die Modalitäten und 
  53. Parameter einer jeden Tastenfunktion in den Dialog-Rückfragen möglichst 
  54. klar benannt, so daß hier kaum weiterer Lernaufwand entsteht. Bei manchen 
  55. Programmen erscheint, wenn Sie versehentlich mit dem Ellenbogen auf die 
  56. Tastatur geraten, eine unheilverkündende Biene auf dem Bildschirm, und 
  57. nach drei Minuten sind alle Achtelnoten in Pausen umgewandelt unter 
  58. Verlust der Tonhöhe; nicht so bei DUMP_AS. Für Kommentare dazu bin ich 
  59. dankbar.
  60.  
  61.  
  62. 3) Geschwindigkeit vs. Sauberkeit
  63.  
  64. Großen Aufwand habe ich zur Beschleunigung von Operationen wie Blättern 
  65. und Rollen getrieben, weil erst hierdurch die schnelle Übersicht 
  66. ermöglicht wird, die DUMP_AS so brauchbar macht. Dazu erwies es sich aus 
  67. den bekannten Gründen als unumgänglich, den Bildschirmspeicher direkt zu 
  68. manipulieren. Den Preis, der dafür zu zahlen ist, ist die Einschränkung 
  69. der Hardware, wie im LIESMICH angegeben: DUMP_AS läuft nur auf (MEGA) 
  70. ST(E) in der hohen Auflösung 640*400, es sei denn, man verfügt (z.B. auf 
  71. TT oder Falcon) über eine ST-Ämulation, ggf. einschließlich 
  72. Monochrom-Konversion, die "Line A +/-", XBIOS ("Setscreen" u.ä.) und die 
  73. dokumentierten ST-Systemvariablen unterstützt. Mir ist so etwas noch nicht 
  74. bekannt, es scheint mir aber in der Luft zu liegen angesichts der vielen 
  75. ST-Spiele und anderen zeitkritischen (daher "unsauberen") ST-Programme. 
  76. Vielleicht schreiben Sie es: im VBI wird der XBIOS-"physische Bildschirm" 
  77. in das wirklich sichtbare Fenster übertragen.
  78.  
  79.  
  80. 4) Schwerpunkte der Ausstattung
  81.  
  82. Wie Sie gemerkt haben werden, macht DUMP_AS von sich aus keinen 
  83. Unterschied zwischen verschiedenen Datei-Arten. Ein gewisser Schwerpunkt 
  84. bei der Gestaltung der Funktionen ist jedoch die Interpretation als 
  85. Bilddaten, ein anderer das Herausfiltern von Texten. Zur Beantwortung 
  86. folgender und verwandter Fragen eignet sich DUMP_AS besonders:
  87.  
  88. - Was für eine (Daten-)Datei ist das?
  89. - Was steht genau drin (z.B. nicht druckende Zeichen)?
  90. - Was tut dieses PRG (welche Texte gibt es aus)?                     ['t']
  91. - Wie arbeitet dieses PRG?                                      ['Ctl.-p']
  92. - Welche (gelöschten) Daten befinden sich auf dem Speichermedium?
  93. - Wie sehen die Sprites/Bilder in Ruhestellung aus?        ['v' etc., 'F']
  94. - Wie sieht das Bild/der Zeichensatz etc. insgesamt aus?   ['w', '<' etc.]
  95.  
  96. Der Plan, einen Disassembler zu integrieren (wie in einem 
  97. "Konkurrenzprodukt"), wurde fallengelassen, da er, gemessen an seiner 
  98. Aussagekraft, die Sache zu sehr aufgebläht und zu viel Speicherplatz 
  99. verbraten hätte. Gute Disassembler gibt es ebenso wie Grafikprogramme, 
  100. Editoren und Diskettenärzte in vielen Ausfertigungen und Preislagen, daher 
  101. wäre es unnötig, DUMP_AS mit deren Aufgaben zu belasten. Die betreffenden 
  102. Daten mit DUMP_AS zu isolieren und als Datei abzuspeichern, dann mit den 
  103. betreffenden Programmen zu bearbeiten und evtl. mit DUMP_AS wieder 
  104. einzufügen, ist eine einfache und mächtige Methode. Daher wurde auf 
  105. folgende Manipulationsmöglichkeiten Wert gelegt:
  106.  
  107. - Daten identifizieren und (als Datei oder Laderaum) isolieren,
  108. - Daten zusammenfassen, z.B. gelöschte Dateien,
  109. - Kleine Änderungen ("Patches") direkt vornehmen, auch im RAM außerhalb 
  110. der Laderäume,
  111. - Daten in ein anderes Format bringen, z.B. einen Header voranstellen,
  112. - Kleine Dateien schnell neu schreiben/malen,
  113. - Daten aus verschiedenen Quellen neu kombinieren,
  114. - Disk-Sektoren überschreiben.
  115.  
  116. Ins ROM springen kann man in dieser Version nicht mehr, da es sicherer und 
  117. problemlos ist, sich ein Datei-Abbild davon zu schaffen. Darin kann man 
  118. dann mittels 't' die Infantilitäten bewundern, die den Platz für die 
  119. vermißten Tastenfunktionen verbraten:
  120.  
  121.       Ich brennt' es gern in jedes ROM-TOS ein,
  122.       Ich ätzt' es gern auf jeden Chip-Baustein,
  123.       Ich löt's in jedes ST(E)-Gerät,
  124.       Auf daß es DUMP_AS jedermann verrät...
  125.  
  126.  
  127. 5) Kurz etwas zum Patchen
  128.  
  129. Unter Patchen versteht man das Verändern einzelner Stellen in einer 
  130. .PRG-Datei unter Wahrung der Gesamtlänge und der Adreßrelationen. Im 
  131. Unterschied dazu könnte man das veränderte Reassemblieren eines 
  132. Programmcodes als "Hacken" bezeichnen. Abänderungen jeder Art können 
  133. unvorhersehbaren Schaden anrichten sowie Urheberrechte verletzen. 
  134. Andererseits sind manche Programme mit tödlichen Fehlern behaftet, die 
  135. nicht sofort von den Autoren behoben werden, so daß der Benutzer auf 
  136. Patches angewiesen ist. Atari geht hier mit "leuchtendem Beispiel" voran, 
  137. indem einige Patches sogar autorisiert werden, und zwar kurz nach 
  138. Fertigstellung der betreffenden TOS-Version.
  139.  
  140. Eine dringende Ermahnung als Minimalforderung: Kennzeichnen Sie alle 
  141. gepatchten Dateien, auch wenn sie nur für Ihren eigenen Gebrauch bestimmt 
  142. sind! Wenn irgend möglich, stellen Sie sie in eigene Ordner. Wenn Name und 
  143. Pfad beibehalten werden müssen, bewahren Sie die Original-Datei direkt 
  144. daneben, z.B. mit der Endung .ORI. Dokumentieren Sie die Änderung aufs 
  145. genauste durch ein PATCH.DOC im gleichen Ordner. Wenn Sie fremde 
  146. PD/Shareware weitergeben, bei der Sie Änderungen für nötig halten, 
  147. unbedingt das komplette Original weitergeben!! Am besten beschreiben Sie 
  148. den Patch lediglich in einer gut abgetrennten Dokumentation samt 
  149. ausführlicher Begründung. Hat der Empfänger DUMP_AS im Haus (oder 
  150. mitgeliefert bekommen), wird er die Verbesserung schnell selbst vornehmen 
  151. können, wenn sie ihm einleuchtet. Vorsicht ist immer angebracht. 
  152. Progrämmchen, die Patches auch in kommerziellen Produkten eigenständig 
  153. anbringen, sind weit verbreitet, aber ebenfalls nicht zu empfehlen, u.a. 
  154. wegen Virengefahr. Auch hier sind aufklärende Textdateien vorzuziehen.
  155.  
  156.  
  157.  
  158.                        ANWENDUNGSBEISPIELE:
  159.  
  160.  
  161. 6) Wie finde ich in den Disk-Sektoren ein Verzeichnis oder einen 
  162. Dateianfang? Was ist beim Reparieren zu beachten?
  163.  
  164. Wenn man auf dem ersten Buchstaben eines Verzeichnis-Eintrags positioniert 
  165. ist, geht man mit 'r' ins Rechen-Menü und gibt dort
  166.  
  167.         ci(p+26)
  168.  
  169. ein. Nachdem mit 'Return' diese Position errechnet ist, kann man 'p' 
  170. drücken, um sie aufzusuchen; es ist die gesuchte Stelle. Pech hat man, 
  171. wenn die Positionsangabe nicht reagiert, dann ist das betreffende Cluster 
  172. nicht eingeladen. Man gibt dann also nur
  173.  
  174.         i(p+26)
  175.  
  176. ein und lädt dann das Cluster mit der Nummer ein, die das Resultat 
  177. bezeichnet.
  178.  
  179. Auf diese Weise kann man sich meistens schnell vom Wurzelverzeichnis bis 
  180. zum Dateianfang hangeln, oft auch bei (frisch) gelöschten Dateien/Ordnern. 
  181. Übrigens erfährt man die Dateilänge in der gleichen Situation mit der 
  182. Zauberformel I(p+28).
  183.  
  184. Weitere Anwendungen dieser Methode: Ordner umhängen (unbedingt 
  185. "beidseitig", d.h. den betreffenden Zwei-Punkte-Eintrag auch abändern) 
  186. oder umbenennen, falls Ihr TOS das nicht kann und Sie sich mit den 
  187. Verzeichnissen gut auskennen - das Schema ist praktisch identisch mit dem 
  188. von MS-DOS benutzten. Wer auf Sicherheit Wert legt - und das tun Sie 
  189. doch?! - wird möglichst nur einzelne Sektoren zurückschreiben und für den 
  190. Fall der Fälle jede größere Aktion schriftlich protokollieren. 
  191. Sicherheitskopien schaden ebenfalls nicht. Siehe Abschnitt 9 des LIESMICH.
  192.  
  193. Auch beim Wiederherstellen korrumpierter Verzeichnis- und FAT-Daten 
  194. erweist sich das 'r'-Menü dem Kundigen als hilfreich. Diese etwas 
  195. mühselige Prozedur ist oft auch dann noch erfolgreich, wenn ein noch so 
  196. "intelligenter" Diskettenarzt versagt, da dieser, genau wie 
  197. Menschen-Ärzte, Ihren Fall nicht so gut kennt wie Sie und folglich 
  198. vielfach von pauschalen Hypothesen ausgeht. Vor allen Rettungsversuchen 
  199. möglichst eine genaue Kopie des Anfangszustandes anfertigen. Beim 
  200. Scheitern Ihrer Bemühungen können Sie eine weitere (!) Kopie davon einer 
  201. Super-Koryphäe aus Ihrem Bekanntenkreis anvertrauen. Versucht man, auf ein 
  202. verdächtiges Medium etwas zu schreiben, seien es Dateien oder Sektoren, 
  203. vergrößert sich höchstwahrscheinlich der Schaden, wenn man nicht (dank 
  204. DUMP_AS und eigenen profunden Kenntnissen) genau weiß, was man tut.
  205.  
  206.  
  207. 7) Welcher Abschnitt hat welchen Inhalt? Wie finde ich Bilder?
  208.  
  209. Die meisten Programm-Dateien haben gegen Ende einen "Daten-Bereich", in 
  210. dem u.a. Texte und Bilder gespeichert werden. Namentlich gewöhnliche 
  211. (längere) ASCII-Texte erkennt man sehr schnell und einfach bereits im 
  212. b-Modus; 'Ctl.-ü' oder aber 't' sind ebenfalls dienlich.
  213.  
  214. Bilder sucht man zuerst dort in der Nähe mit dem b-Modus. Kennt oder ahnt 
  215. man deren Breite (z.B. bei s/w-Sprites 2), so stellt man diese ein ('#', 
  216. ggf. danach 'w') und blättert umher. So findet man in Sekunden jedes 
  217. Sprite, jedes Ikonogramm und jeden Mauszeiger.
  218.  
  219. Bei unbekannter Breite ist man wieder auf seinen erfahrenen Blick 
  220. angewiesen (nebst geeigneter Breiteneinstellung, 12 mit 'w' hat sich oft 
  221. bewährt), um die Stelle zu erraten. Hat man eine solche im Verdacht, 
  222. stimmt aber die Breite nicht, so positioniert man sich (per Mauszeiger) 
  223. auf eine Stelle, rechts von der man markante senkrechte Strukturen 
  224. vermutet. Jetzt ggf. die 'w'-Funktion mit 'Return' verlassen und mit 'v' 
  225. einen Vorschlag anfordern. Hat dies nicht den gewünschten Effekt, nochmal 
  226. probieren (bis sich die Breite nicht mehr ändert), ggf. die Position 
  227. korrigieren. Eine recht sichere Strategie ist, mit Breite 2 anzufangen und 
  228. fortgesetzt 'V' zu drücken, dann werden alle geraden Breiten 
  229. durchprobiert. Sollte die gesuchte Breite ungerade sein, so wird man das 
  230. Bild dennoch zusammengepreßt erkennen; dann die Breite mit 'd2' halbieren. 
  231. Oft ist das Bild schon schemenhaft und senkrecht/waagrecht verzerrt zu 
  232. sehen, wenn die Breite z.B. um einen Faktor 5/3 verfehlt wurde. Dann führt 
  233. manchmal 'Ctl.-v' zum Ziel, oder auch Probieren von Faktoren und Divisoren 
  234. (z.B., falls die momentane Breite durch 7 teilbar ist, 'd7' versuchen; 
  235. geeignete Faktoren sind manchmal im g-Modus als senkrechte Pixel-Abstände 
  236. ähnlicher Zeilen abzuzählen). Scheint das Resultat mißlungen, kann mit 
  237. 'Sh.-Undo' die vorige Breite restauriert werden, um z.B. eine andere 
  238. Position auszuprobieren.
  239.  
  240. Die Vorschlags-Mechanismen sind keineswegs nur dazu geeignet, Bilder, 
  241. Ikonogramme, Sprites, Mauszeiger und Zeichensätze darzustellen, vielmehr 
  242. kann man damit allerlei fast-periodische Strukturen ermitteln. Beispiele 
  243. sind die erwähnten Verzeichnisse, Listen und Felder aller Art, sowie 
  244. ausgeschriebene Schleifen im Programmcode. In derartigen Fällen bietet 
  245. sich der ü-Modus an, etwa mit dem Zeichensatz ASCI_HEX.FN8, doch ist für 
  246. den Geübten auch der b-Modus von Nutzen.
  247.  
  248.  
  249. 8) Ein Programm findet seine Dateien nicht
  250.  
  251. Stürzt ein Programm gleich zu Anfang ab, oder erscheint eine Warnmeldung 
  252. der Art "Spielfiguren nicht gefunden!", so liegt das eventuell daran, daß 
  253. Hilfsdateien woanders gesucht werden, als dort, wo Sie sie hinkopiert 
  254. haben. Laden Sie so eine Programmdatei in DUMP_AS ein und betätigen 't' 
  255. (dabei natürlich die Zeichen '\', ':', '*' und '?' sowie alle Buchstaben 
  256. zulassen). Achten Sie auf mögliche Ordner-, Datei- oder Pfadnamen. Beginnt 
  257. ein solcher mit '\', also z.B. "\DATEN\COLOR\", so erwarten das Programm 
  258. wahrscheinlich unverschämterweise, daß Sie seinen läppischen Ordner 
  259. "DATEN" in Ihrem geheiligten Wurzelverzeichnis stehen haben. Wenn Sie 
  260. solchen Zumutungen nicht gehorchen wollen, stellen Sie den Ü-Modus ein, 
  261. klicken Sie mit 'li.' den ersten '\' an und tippen Sie (im Beispiel) 
  262. "DATEN\COLOR\" ein, also ohne den führenden '\'. Solch ein Pfad wird mit 
  263. einem Null-Byte abgeschlossen sein, tippen Sie also mit 'Ctl.-00' ein 
  264. solches über das noch vorhandene alte Zeichen am Ende (hier ebenfalls ein 
  265. '\'), und klopfen Sie diese Änderung mit 'Return' fest. Jetzt endet der 
  266. Pfad mit zwei Null-Bytes, was nichts schadet. Er bezieht sich aber nun für 
  267. das GEMDOS auf das aktuelle Verzeichnis, wahrscheinlich also das, worin 
  268. auch die Programmdatei steht. Nachdem Sie also den Laderaum abgespeichert 
  269. haben (wie immer auf eine Kopie oder unter neuem Namen!), kopieren Sie den 
  270. Ordner "DATEN" in jenes Verzeichnis hinein. Bei Mißerfolg den 
  271. ursprünglichen Zustand wiederherstellen und evtl. weiter probieren. 
  272. Achtung: Dies ist als Anregung, nicht als Kochrezept zu verstehen! Wer mit 
  273. dem GEMDOS nicht so recht vertraut ist, sollte sich von einem erfahrenen 
  274. AtariSTen helfen lassen (vorher aber alles auf Disketten kopieren und 
  275. diese gut verstecken!).
  276.  
  277.  
  278. 9) Ein besonderer Tip für Programmierer: das Buddelschiff
  279.  
  280. Wie kommt das kleine Bildchen in die DUMP_AS.PRG-Datei? Manche 
  281. Programmiersprachen haben einen speziellen Befehl "INLINE" für solche 
  282. Zwecke. Bietet Ihr Compiler diese Möglichkeit nicht, stattdessen aber - 
  283. als Linker - das Zusammenbinden von Objektdateien, so können Sie in 
  284. Zukunft trotzdem auf das Eintippen seitenlanger Initialisierungsdaten wie 
  285. auch auf das Nachladen zur Laufzeit verzichten. Nehmen wir an, Sie haben 
  286. 1234 Bytes Daten bereits in einer Datei stehen, z.B. ein Bild, und Sie 
  287. haben einen C-Compiler. Legen Sie ein Modul MEINBILD.C an, das nur 
  288. folgenden Text enthält:
  289.  
  290.         char mein_tolles_bild[1234] = "hier fängt's an";
  291.  
  292. (also ein teilweise initialisiertes Feld von Bytes der Dimension 1234) und 
  293. übersetzen Sie es zu der Objekt-Datei MEINBILD.O. Diese Datei laden Sie in 
  294. DUMP_AS ein, in den anderen Laderaum Ihr Bild, dessen 1234 Bytes Sie nun 
  295. dorthin kopieren, wo Sie in MEINBILD.O lesen: "hier fängt's an", gefolgt 
  296. von 1219 Null-Bytes (brauchen Sie nicht nachzuzählen). In Ihrem 
  297. eigentlichen C-Programm deklarieren Sie den Feldnamen global, wie üblich:
  298.  
  299.         extern char mein_tolles_bild[];
  300.  
  301. und schon greifen Sie auf die Daten zu, als hätten Sie sie eingetippt. 
  302. Natürlich müssen Sie MEINBILD.O (nicht MEINBILD.C!) vom Linker einbinden 
  303. lassen, indem Sie es im Makefile (der Projekt-Datei) oder dem 
  304. Link-Kommando angeben.
  305.  
  306. Hat ihr Entwicklungswerkzeug keinen Linker, können Sie notfalls auch im 
  307. fertigen .PRG eine mit einem markanten Text initialisierte Zeichenkette 
  308. ('s') überschreiben, dies muß dann aber nach jedem Kompilieren erneut 
  309. geschehen. Ist eine Längenangabe nicht möglich oder füllt Ihr Compiler 
  310. nicht mit Nullbytes auf, so müssen Sie die volle Anzahl Zeichen im 
  311. Quelltext eintippen. Sollte auch dies wegen zu großer Länge unmöglich 
  312. sein, hilft vielleicht der Perioden-Trick weiter: Tippen Sie etwa ein:
  313.  
  314.     STRING kette(100)    (* als Feld von Zeichenketten dimensionieren *)
  315.     kette(1) = "0123456789"
  316.     kette(2) = "0123456789"
  317.     ...
  318.  
  319. usw. (kopieren) je nach Sprache; diese Zeichenketten müssen Sie dann im 
  320. Programm als Rechteck ausfindig machen und mit 'K' übermalen.
  321.  
  322.  
  323. 10) Ergänzendes zu den Zeichensätzen:
  324.  
  325. Das .FN8-Format ist identisch mit dem von STAD benutzten, folglich ist der 
  326. STAD-Zeichensatz-Editor auch hierfür brauchbar. Einen .FN4- oder 
  327. .FN6-Zeichensatz können Sie damit ebenfalls herstellen: Setzen Sie die 
  328. Zeichen in passender Größe in die linke obere Ecke des jeweiligen Platzes; 
  329. das Ergebnis laden Sie in einen DUMP_AS-Laderaum und extrahieren die 
  330. benötigten Bytes mittels 'K' in den anderen Laderaum. Die Details 
  331. herauszufinden, überlasse ich Ihnen als Denksport.
  332.  
  333. Der TEMPUS-Editor und DEGAS verwenden dasselbe Format, dulden allerdings 
  334. fehlende Zeichen am Ende, wie mir berichtet wurde. Sicher gibt es weitere 
  335. Zeicheneditoren dafür; übrigens hat auch DUMP_AS Talent für derartige 
  336. Aufgaben ('g').
  337.  
  338.  
  339. 11) Link-Viren, voreingestellte Variablen
  340.  
  341. Manche Programme erlauben es, die Voreinstellung von Parametern (z.B. der 
  342. Seitenbreite und -länge in Textverarbeitungsprogrammen) zu ändern und 
  343. speichern diese dann in der Programmdatei selbst ab. Wird dann ein guter 
  344. Viren-Wächter eingesetzt, so wird er melden, daß die Datei verändert ist. 
  345. Umgekehrt kann theoretisch ein Link-Virus so programmiert sein, daß es die 
  346. von Ihrem Detektor errechnete Prüfsumme unverändert läßt und infizierte 
  347. Programme daher nicht beanstandet werden. Um ganz sicher zu gehen, lädt 
  348. man die betreffende Datei in den einen Laderaum, das Original von der 
  349. Diskette (oder eine Kopie, in der unter aseptischen Bedingungen die 
  350. erwähnten Parameter angeglichen wurden) in den anderen. Im Parallelmodus 
  351. ('p') vergleicht man die Dateien ('c'), um ggf. zu beurteilen, ob die 
  352. unterschiedlichen Stellen ein Link-Virus darstellen. Experimentieren Sie 
  353. eventuell mit den Parametern, um deren Ort in der Datei zu herauszufinden. 
  354. Einzelheiten über Viren sollten Sie der Literatur entnommen haben oder 
  355. entnehmen.
  356.  
  357. Das Problem, ob Konfigurations-Parameter in der Programm-Datei oder in 
  358. einer separaten Datei hinterlegt werden sollen - beides hat große 
  359. Nachteile - ist bei DUMP_AS nach reiflicher Überlegung dahingehend gelöst, 
  360. daß gar keine Änderung der Voreinstellung vorgesehen ist.
  361.  
  362. Wer auf die parametrische Selbstbestimmung auch in so einem Fall nicht 
  363. verzichten zu können meint, muß eben versuchen, zu "patchen" - auf die 
  364. Gefahr unerwünschter Nebenwirkungen hin; siehe oben und im Liesmich 
  365. Abschnitt 18. Diese Gefahr steigert sich zur Apokalypse, wenn Sie Werte 
  366. eintragen, die im Programm selbst nicht zur Auswahl stehen. In DUMP_AS 
  367. gebe ich (allerdings inoffiziell und auf eigene Gefahr) die Voreinstellung 
  368. der von der 't'-Funktion zu akzeptierenden Sonderzeichen frei, sie ist als 
  369. Zeichenkette abgespeichert, die mit "äöü" beginnt und - für diesen Zweck - 
  370. mit ein paar Leerzeichen endet; Doubletten schaden nämlich nicht. 
  371. Vorangestellt sind zwei Zeichen, die die Voreinstellung des Trenn- bzw. 
  372. Nummernzeichens enthalten. Überschreiben Sie keinesfalls das abschließende 
  373. Nullbyte und setzen Sie kein anderes Nullbyte ein! Befolgen Sie Abschnitt 
  374. 5 oben, insbesondere geben Sie unbedingt nur das Original an andere 
  375. Personen weiter!
  376.  
  377.  
  378. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  379.  
  380. MINI-GLOSSAR:
  381.  
  382. - Sektor: Die üblichen Massenspeicher werden beim Formatieren in Sektoren 
  383. gleicher Länge (meist 512 Bytes nutzbare Daten) unterteilt, die noch mit 
  384. etwas Sicherheits-Brimborium umzäunt sind. Ihr Computer kann 
  385. Massenspeicher-Daten nur sektorenweise lesen und schreiben. Die Sektoren 
  386. zu einem "logischen Laufwerk", z.B. einer Festplatten-Partition, werden ab 
  387. 0 durchnumeriert ("logische Sektornummer"). Die Nummer 0 gebührt 
  388. normalerweise dem "Bootsektor", der einige fundamentale Daten über das 
  389. Laufwerk enthält. TOS ist allerdings bereit, sich von entsprechender 
  390. Software, dem Speichermedien-"Treiber", das Vorhandensein von Sektoren 
  391. lediglich vorgaukeln zu lassen; auch die Information, die der Bootsektor 
  392. bereitstellen sollte, kann anderweitig untergeschmuggelt sein, wie z.B. 
  393. bei einer Ramdisk, die oft nicht einmal einen "logischen" Bootsektor 
  394. aufweist. Die Sektor-Funktionen von DUMP_AS stellen sich auf denselben 
  395. Standpunkt wie TOS, behandeln also "logische Sektoren" auch aus Ramdisks.
  396.  
  397. - Cluster: Um die Verwaltung der Dateien zu rationalisieren, wird ihnen 
  398. der Platz auf dem Laufwerk nur in Blöcken von je (meist) zwei Sektoren 
  399. zugewiesen, fachchinesisch Cluster genannt.
  400.  
  401. Die erwähnten Zahlen, in der Regel 512 und 2, sind im Bootsektor 
  402. niedergelegt, falls dieser existiert. Befindet man sich in DUMP_AS am 
  403. Anfang desselben, so ergibt im Rechen-Menü 'r' die Formel i(p+11) die 
  404. erstere und B(p+13) die zweite. Diese Stellen sind nötigenfalls zu 
  405. reparieren, um die anderen Sektoren überhaupt wieder lesbar zu machen.
  406.  
  407. - FAT: Datei-Zuweisungs-Tabelle. Zahlenkram in den Sektoren nach dem 
  408. Bootsektor, worin niedergelegt ist, in welcher Reihenfolge die belegten 
  409. Cluster inhaltlich aufeinanderfolgen.
  410.  
  411. - Wurzelverzeichnis: Liegt auf den Sektoren dahinter. Jeder Ordner und 
  412. jede Datei des Laufwerks, die in keinem (anderen) Ordner enthalten sind, 
  413. sind hier aufgelistet, und zwar mit Namen und Endung (zusammen 11 Bytes), 
  414. sowie mit weiteren 21 Bytes Verwaltungszahlen, aus denen u.a. hervorgeht, 
  415. in welchem Cluster die Datei anfängt (siehe oben Abschnitt 6). Zusammen 
  416. mit der FAT-Information weiß das GEMDOS oder MS-DOS dann, welche Cluster 
  417. in welcher Reihenfolge die Datei ausmachen. Bei Ordnern erfährt man 
  418. stattdessen, in welchem Cluster das betreffende Unterverzeichnis beginnt. 
  419. Die Numerierung derjenigen Cluster, mit denen sich die FAT befaßt, beginnt 
  420. erst hinter dem Wurzelverzeichnis, und zwar mit Cluster 2 (don't ask me 
  421. why; was gestern provisorische Willkür war, wird heute zum Sachzwang 
  422. erklärt, wie in der Politik).
  423.  
  424. - Unterverzeichnis: Darf im Gegensatz zum Wurzelverzeichnis beliebige 
  425. Länge haben, da die benötigten Cluster, wie bei Dateien, von der FAT 
  426. erfaßt werden (folglich ist bei mehr als 32 Einträgen nicht garantiert, 
  427. daß es zusammenhängend gespeichert ist). Ansonsten ist es genau wie das 
  428. Wurzelverzeichnis aufgebaut, wobei der erste Eintrag den Namen "." trägt 
  429. und die Theaterfrage "wo bin ich?" sowie die Fernsehfrage "was bin ich?" 
  430. beantwortet, der zweite namens ".." verweist auf das übergeordnete 
  431. Verzeichnis, also im Pfad um eine Station zurück.
  432.  
  433. Einige Details finden Sie oben in Abschnitt 6; zur FAT usw. muß ich Sie 
  434. auf die umfangreiche Literatur verweisen (Titel mag ich nicht nennen).
  435.  
  436. - GEMDOS-Speicherverwaltung: Programme können vom Betriebssystem 
  437. Speicherblöcke anfordern, d.h. zum exklusiven Gebrauch reservieren lassen, 
  438. sowohl durch den Willen des Programmierers als auch den seines Compilers 
  439. oder Interpreters, ferner von Accessories, Dateiauswahl-Boxen etc.. 
  440. Normalerweise werden diese Blöcke, soweit nicht schon zurückgegeben, nach 
  441. Programmende wieder für frei erklärt. Zu möglichen Pannen lesen Sie bitte 
  442. Abschnitt 19 im Liesmich.
  443.  
  444.  
  445. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  446.  
  447. Diese Datei wird laufend erweitert, gerne auch um Extrakte aus Ihren 
  448. Erfahrungsberichten und Hinweisen, auf die ich sehr gespannt bin.
  449.  
  450.  
  451. _AS.
  452.